//
//  HFCaptureSession.h
//  HocusFocus
//
//  Created by Juan Carlos Jimenez on 4/20/06.
//  Copyright 2008 Juan Carlos Jimenez. All rights reserved.
//

#import <Cocoa/Cocoa.h>

@class HFOrnament;

@interface HFFocusArea : NSObject
{
	NSRect      rect;
    HFOrnament  *ornament;
}

@property (assign) NSRect rect;
@property (nonatomic, retain) HFOrnament *ornament;

- (BOOL)isValid;

@end

/**
 @class Serves as the model for a screen capture session where the view/controller is HFCaptureView/HFCaptureWindowController.
 */
@interface HFCaptureSession : NSObject {
    HFFocusArea     *captureArea;
    NSMutableArray  *focusAreas;
    HFFocusArea     *currentFocusArea;
    HFFocusArea     *highlightedFocusArea;
    HFFocusArea     *movingFocusArea;
    HFOrnament      *currentOrnament;
}

@property (retain) HFFocusArea *captureArea;
@property (retain) HFFocusArea *currentFocusArea;
@property (retain) HFFocusArea *highlightedFocusArea;
@property (retain) HFFocusArea *movingFocusArea;
@property (retain) HFOrnament *currentOrnament;

/**
 * Resets the session to its original state
 */
- (void)reset;

/**
 * Returns YES if the session is currently in the process of defining the capture area.
 */
- (BOOL)isDefiningCaptureArea;

/**
 * Returns YES if a capture focus area has been set and if it is larger than 0.0 x 0.0 in size.
 */
- (BOOL)hasValidCaptureArea;

/**
 * Returns the count of accumulated focus areas.
 */
- (NSMutableArray *)focusAreas;

@end
